package com.yyc.service.impl;

import com.yyc.service.UserService;
import lombok.Data;

@Data
public class UserServiceImpl implements UserService {
    private String userName;
    private String age;

    /**
     * 声明有参构造，spring通过有参构造注入数据
     *
     * @param userName
     * @param age
     */
    public UserServiceImpl(String userName, String age) {
        this.userName = userName;
        this.age = age;
    }

    /**
     * 声明setter方法，spring底层通过该方法进行setter注入
     *
     * @param userName
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 声明setter方法，spring底层通过该方法进行setter注入
     *
     * @param age
     */
    public void setAge(String age) {
        this.age = age;
    }

    public String getUserName() {
        return userName;
    }

    public String getAge() {
        return age;
    }

    //构造函数,通过构造函数创建bean对象
    public UserServiceImpl() {
        System.out.println("1、先创建bean对象>>>> " + "UserServiceImpl create.....");
    }

    public void add() {
        System.out.println("  <<<<< add Running....<<<<<<<<<..............");
    }

    public void update() {
        System.out.println("  >>> update running .....>>>...........");
    }

    /**
     * @Author yuyongxiang
     * @CreateTime 2021/12/13 17:13
     * @Description 定义初始化方法；无参构造先执行创建对象，然后在调用initMethod初始化方法
     */
    public void initMethod() {
        System.out.println("2、在初始化对象：initMethod Running.........初始化方法在构建完bean对象之后");
    }

    /**
     * 定义bean对象的销毁方法
     * 单例模式下：ioc销毁，则对象销毁，回调destroyMethod销毁方法
     */
    public void destroyMethod() {
        System.out.println("3、调用关闭ioc容器方法，使用完后，在销毁对象：destroyMethod Running.........销毁方法");
    }
}
